As a non-volatile memory device, a flash memory device is an integrated circuit capable of storing or reading information at a preferred point. A flash memory device includes a plurality of rewritable memory cells. Each memory cell stores 1-bit data or multi-bit data. If 1-bit data is stored in one memory cell, the memory cell has program states corresponding to two threshold voltage distributions. That is, the memory cell is programmed to have a threshold voltage corresponding to one of data ‘1’ and data ‘0’. A multi level cell (MLC) storing multi-bit data in one memory cell has more program states. That is, if 2-bit data are stored in one memory cell, the memory cell is programmed with a threshold voltage included in one of four threshold voltage distributions. If 3-bit data are stored in one memory cell, the memory cell is programmed with a threshold voltage included in one of eight threshold voltage distributions. Recently, various techniques for storing 4-bit data in one memory cell are actively under development.
Data stored in a memory cell are read by detecting a threshold voltage amplitude of a memory cell. However, a threshold voltage of a memory cell may shift due to various factors. A threshold voltage of a memory cell may vary based on temperature and procedures. Additionally, a threshold voltage of a memory cell may shift due to program disturbance, read disturbance, and erase disturbance. Furthermore, a threshold voltage may shift due to charge loss in a floating gate of a memory cell. The shift of a threshold voltage becomes an obstacle when an MLC is realized to store the more number of bits in one memory cell. Various solutions for the shift of a threshold voltage have been suggested. However, these methods cause great signal delay and cannot keep up with a current mobile trend intended for high data capacity and high data rate. Therefore, techniques that can promptly resolve the shift of a threshold voltage without impeding memory performance are urgently required.